package com.mmm.order.service;


import com.mmm.common.vo.Paging;
import com.mmm.order.entity.Express;

import javax.servlet.http.HttpServletRequest;
import java.util.List;

/**
 * (Express)表服务接口
 *
 * @author One
 * @since 2022-03-05 21:09:36
 */
public interface ExpressService {

    /**
     * 通过ID查询单条数据
     *
     * @param id 主键
     * @return 实例对象
     */
    Express queryById(Long id);

    /**
     * 查询多条数据
     *
     * @param offset 查询起始位置
     * @param limit 查询条数
     * @return 对象列表
     */
    List<Express> queryAllByLimit(int offset, int limit);

    /**
     * 新增数据
     *
     * @param express 实例对象
     * @return 实例对象
     */
    Express insert(HttpServletRequest request,Express express);

    /**
     * 修改数据
     *
     * @param express 实例对象
     * @return 实例对象
     */
    Express update(Express express);
    Express addOrder(String authorization,Express express);

    /**
     * 通过主键删除数据
     *
     * @param id 主键
     * @return 是否成功
     */
    boolean deleteById(Long id);

    Express findById(Long id);

    Paging<Express> list(Integer page,Integer size);

    void insertQueueOrUpdate(Long id);
    void deleteQueue(Long id);


    Paging<Express> getMyExpressAll(String token,Integer page,Integer size);

    Paging<Express> getMyExpressUnfinished(String token,Integer page,Integer size);

    Paging<Express> getMyExpressFinish(String token,Integer page,Integer size);

    Paging<Express> getTaskUnfinished(String token,Integer page,Integer size);

    Paging<Express> getTaskFinished(String token,Integer page,Integer size);

    Paging<Express> getTaskAll(String token, Integer page, Integer size);

    Paging<Express> byDeliveryId(Integer id, Integer page, Integer size);

    Paging<Express> byUniversity(String authorization, Integer page, Integer size);
}